<?php
error_reporting(0);
session_start();
$access_control = "924y39c9vns8r73";

include_once "funcoes.php";
include_once "db.php";
include_once "valida.php";

include_once "classe/cliente.php";
include_once "classe/fornecedor.php";
include_once "classe/log.php";
include_once "classe/marca.php";
include_once "classe/produto.php";
include_once "classe/servico.php";
include_once "classe/setor.php";
include_once "classe/venda.php";
include_once "classe/parcelado.php";
include_once "classe/venda_produto.php";
include_once "classe/venda_servico.php";
include_once "classe/financeiro.php";
include_once "classe/montante.php";
include_once "classe/usuario.php";
include_once "classe/empresa.php";
include_once "classe/venda_estornada.php";
include_once "classe/fluxo_caixa.php";
include_once "classe/conta.php";

class config{
    //               sgbd;servidor;banco;usuario;senha
    static $driver = "mysql;localhost;sgm;root;mandriva;";
    static $driver_login = "mysql;localhost;sgm;root;mandriva;";
    static $url_aw = "http://localhost/";
    static $url_cliente = "http://localhost/cliente/";
    
    /*
    //               sgbd;servidor;banco;usuario;senha
    static $driver = "mysql;localhost;angulowe_sgm;angulowe_sgm;FMs-se5ql0F3;";
    static $driver_login = "mysql;localhost;aw_anguloweb;aw_user;AC87RwG02VIf;";
    static $url_aw = "http://www.anguloweb.com.br/";
    static $url_cliente = "http://cliente.anguloweb.com.br/";
    */
}

//if(!isset($_SERVER['HTTPS'])){ header("location: https://anguloweb.sslblindado.com/sgm"); }

if($_GET["sair"] == 1){
    logout();
}

function geraBoletoLogin($id, $dt_base){
    $data = soma_data(30, $dt_base);
    $sql = "INSERT INTO financeiro(id_empresa, dt_vencimento, valor, dt_pagamento) VALUES('$id', '$data', '90', '0000-00-00')";
    $db = new db(config::$driver_login);
    $con = $db->conecta();
    $db->query($sql, $con);
    $db->close($con);
}

function login(){
    $login = addslashes($_POST["login"]);
    $senha = addslashes($_POST["senha"]);
    
    $erro = 0;
    if(valida::email($login)){
        $senha = md5($senha);
        $sql = "select * from usuario where usuario = '$login' and senha = '$senha'";
        $db = new db(config::$driver_login);
        $con = $db->conecta();
        $result = $db->query($sql, $con);
        $usuario = $db->fetch_array($result);
	
        if($usuario){
            
            $sql = "SELECT e.*, r.*, e.id as e_id, r.id as r_id FROM empresa e, empresa_produto r
                    WHERE e.id = '".$usuario["id_empresa"]."' AND r.id_empresa = e.id AND r.id_produto = '1'";
            
            $result = $db->query($sql, $con);
            $empresa = $db->fetch_array($result);
            
            if($empresa){
                $sql = "SELECT * FROM financeiro WHERE id_empresa = '".$empresa["e_id"]."' 
                        ORDER BY dt_vencimento DESC LIMIT 1";
            
                $result = $db->query($sql, $con);
                $transacao = $db->fetch_array($result);
                
                // Verifica se existe transaçao
                if($transacao){
                    
                    // Nao esta vencido
                    if($transacao["dt_vencimento"] >= date("Y-m-d")){
                        
                        // ja esta pago
                        if($transacao["dt_pagamento"] != "0000-00-00"){
                            // GERAR BOLETO
                            geraBoletoLogin($empresa["e_id"], $transacao["dt_vencimento"]);
                        }
                        
                        $bloqueio = 0;
                        
                    }else{
                        
                        // ja esta pago
                        if($transacao["dt_pagamento"] != "0000-00-00"){
                            
                            // verifica a data base para o próximo boleto
                            if($transacao["dt_vencimento"] >= $transacao["dt_pagamento"]){
                                $dt_base = $transacao["dt_vencimento"];
                            }else{
                                $dt_base = $transacao["dt_pagamento"];
                            }
                            
                            // GERAR BOLETO
                            geraBoletoLogin($empresa["e_id"], $dt_base);
                            $bloqueio = 0;
                            
                        }else{
                            $data = soma_data(5, $transacao["dt_vencimento"]);
                            if($data >= date("Y-m-d")){
                                $bloqueio = 0;
                            }else{
                                $bloqueio = 1;
                            }
                        }
                        
                    }
                    
                    // Alerta de pagamento
                    if($transacao["dt_pagamento"] == "0000-00-00" || $transacao["dt_pagamento"] == ""){
                        if(soma_data(5, date("Y-m-d")) >= $transacao["dt_vencimento"] && $transacao["dt_vencimento"] > date("Y-m-d")){
                            echo "
                            <script>
                                alert('ATENÇÃO!\\nEvite o bloqueio de sua conta SGM efetuando o pagamento da mensalidade até o dia ".  data_ptbr($transacao["dt_vencimento"])."');
                            </script>";
                        }else if(soma_data(5, $transacao["dt_vencimento"]) >= date("Y-m-d") && $transacao["dt_vencimento"] <= date("Y-m-d")){
                            echo "
                            <script>
                                alert('ATENÇÃO!\\nEvite o bloqueio de sua conta SGM efetuando o pagamento da mensalidade o mais breve possivel.');
                            </script>";
                        }
                    }
                    
                }else{
                    // GERAR PRIMEIRO BOLETO
                    geraBoletoLogin($empresa["e_id"], date("Y-m-d"));
                    $bloqueio = 0;
                }
                
                if($empresa["bloqueado"] != $bloqueio){
                    $sql = "UPDATE empresa_produto SET bloqueado = '$bloqueio' WHERE id = '".$empresa["r_id"]."'";
                    $db->query($sql, $con);
                }
                
                $_SESSION["sgm_id"]         = $usuario["id"];
                $_SESSION["sgm_id_empresa"] = $usuario["id_empresa"];
                $_SESSION["sgm_usuario"]    = $usuario["usuario"];
                $_SESSION["sgm_senha"]      = $usuario["senha"];
                $_SESSION["sgm_nome"]       = $usuario["nome"];
                $_SESSION["sgm_master"]     = $usuario["master"];
                $_SESSION["sgm_bloqueado"]  = $usuario["bloqueado"];
                
                $_SESSION["sgm_logo"]    = $empresa["logo"];
                $_SESSION["sgm_empresa"] = $empresa["empresa"];
                $_SESSION["sgm_empresa_bloq"] = $bloqueio;

                $log = new log($_SESSION["sgm_id_empresa"], $_SESSION["sgm_usuario"], "login efetuado com sucesso");
                unset($log);
            }
            
            /*
            $sql = "SELECT count(*) FROM empresa_produto WHERE id_empresa = '".$usuario["id_empresa"]."' AND id_produto = '1' AND bloqueado = '0'";
            $result = $db->query($sql, $con);
            $emp_prod = $db->fetch_array($result);
            if($emp_prod[0] > 0){
                if($usuario["bloqueado"] == 0){
                    $_SESSION["sgm_id"]         = $usuario["id"];
                    $_SESSION["sgm_id_empresa"] = $usuario["id_empresa"];
                    $_SESSION["sgm_usuario"]    = $usuario["usuario"];
                    $_SESSION["sgm_senha"]      = $usuario["senha"];
                    $_SESSION["sgm_nome"]       = $usuario["nome"];
                    $_SESSION["sgm_master"]     = $usuario["master"];
                    $_SESSION["sgm_bloqueado"]  = $usuario["bloqueado"];

                    $sql = "select * from empresa where id = '".$usuario["id_empresa"]."'";
                    $db = new db(config::$driver_login);
                    $result = $db->query($sql, $con);
                    $empresa = $db->fetch_array($result);

                    $_SESSION["sgm_logo"]    = $empresa["logo"];
                    $_SESSION["sgm_empresa"] = $empresa["empresa"];

                    $log = new log($_SESSION["sgm_id_empresa"], $_SESSION["sgm_usuario"], "login efetuado com sucesso");
                    unset($log);
                }else{
                    echo "
                        <script>alert('Usuário bloqueado!')</script>";

                    $log = new log($usuario["id_empresa"], $usuario["id"], "login bloqueado");
                    unset($log);
                }
            }else{
                $erro = 1;
                echo "
                <script>
                    alert('Empresa bloqueada!');
                </script>
                ";
            }
            */
        }else{
            $erro = 1;
        }
        $db->close($con);
    }else{
        $erro = 1;
        
        $log = new log('', '', "login inexistente <$login>");
        unset($log);
    }

    if($erro == 0){
        //header("location: index.php");
        return 1;
    }else{
        return 0;
    }
}

function logado(){
    if($_SESSION["sgm_id"]         != NULL && 
       $_SESSION["sgm_id_empresa"] != NULL && 
       $_SESSION["sgm_usuario"]    != NULL && 
       $_SESSION["sgm_senha"]      != NULL && 
       $_SESSION["sgm_nome"]       != NULL && 
       $_SESSION["sgm_master"]     != NULL && 
       $_SESSION["sgm_bloqueado"]  != NULL){
        return 1;
    }else{
        return 0;
    }
}

function logout(){
    $log = new log($_SESSION["sgm_id_empresa"], $_SESSION["sgm_usuario"], "logout efetuado");
    unset($log);

    $_SESSION["sgm_id"]         = NULL;
    $_SESSION["sgm_id_empresa"] = NULL;
    $_SESSION["sgm_usuario"]    = NULL;
    $_SESSION["sgm_senha"]      = NULL;
    $_SESSION["sgm_nome"]       = NULL;
    $_SESSION["sgm_master"]     = NULL;
    $_SESSION["sgm_bloqueado"]  = NULL;
    $_SESSION["sgm_empresa_bloq"] = NULL;
    
    header("location: index.php");
}

function soma_data($n, $data = NULL) {
    if($data){
        $data = data_sql($data);
        
        $ano = substr($data,0,4);
        $mes = substr($data,5,2);
        $dia = substr($data,8,2);
    }else{
        $dia = date("d");
        $mes = date("m");
        $ano = date("Y");
    }

    $tmp = $ano;
    if($tmp > 2012){
            while($tmp > 2012) {
                    $tmp -=4;
            }
    }elseif($tmp < 2012){
            while($tmp < 2012) {
                    $tmp +=4;
            }
    }
    if($tmp == 2012){
            $bissexto = 1;
    }else {
            $bissexto = 0;
    }

    for($x = 0; $x < $n; $x++) {
            $dia++;
            if($mes == 2){
                    if($bissexto == 1){
                            if($dia == 30){ $dia = 1; $mes = 3; }
                    }else {
                            if($dia == 29){ $dia = 1; $mes = "3"; }
                    }
            }elseif($mes == "04" || $mes == "06" || $mes == "09" || $mes == "11") {
                    if($dia == 31){ $dia = 1; $mes++; }
            }else {
                    if($dia == 32){ $dia = 1; $mes++; }
                    if($mes == 13){ $mes = 1; $ano++; }
            }
    }

    if($dia < 10 && strlen($dia) < 2){
            $dia = "0".$dia;
    }

    if($mes < 10 && strlen($mes) < 2){
            $mes = "0".$mes;
    }
    return $ano."-".$mes."-".$dia;
}

//Conveerte data para o formato SQL
function data_sql($data){
    if(substr($data, 2, 1) == '/' && substr($data, 5, 1) == '/'){
        $dia = substr($data, 0, 2);
        $mes = substr($data, 3, 2);
        $ano = substr($data, 6, 4);
        $hora = substr($data, 10);

        if(strlen($data) >= 10){
            if(strlen($hora) > 0){
                return $ano."-".$mes."-".$dia." ".$hora;
            }else{
                return $ano."-".$mes."-".$dia;
            }
        }else{
            return NULL;
        }
    }else{
        if(strlen($data) >= 10){
            return $data;
        }else{
            return NULL;
        }
    }
}

//converte data para o formato brasileiro
function data_ptbr($data){
    if(substr($data, 4, 1) == '-' && substr($data, 7, 1) == '-'){
        $ano = substr($data, 0, 4);
        $mes = substr($data, 5, 2);
        $dia = substr($data, 8, 2);
        $hora = substr($data, 10);

        if(strlen($data) >= 10){
            if(strlen($hora) > 0){
                return $dia."/".$mes."/".$ano." ".$hora;
            }else{
                return $dia."/".$mes."/".$ano;
            }
        }else{
            return NULL;
        }
    }else{
        if(strlen($data) >= 10){
            return $data;
        }else{
            return NULL;
        }
    }
}

function formapagamento($n){
    switch ($n){
        case 1: return "À Vista"; break;
        case 2: return "No Cartão"; break;
        case 3: return "No Cheque"; break;
        case 4: return "Parcelado"; break;
    }
}

function geraSenha(){
    $senha = '';
    for($i = 0; $i < 6; $i++){
        if(rand(0,1) == 0){
            $senha .= rand(0,9);
        }else{
            $senha .= ord(rand(97,122));
        }
    }
    return $senha;
}


function add_0($val){
    $p = 0;
    if($val == ''){ $val = 0; }
    
    for($i = 0; $i < strlen($val); $i++){
        if(substr($val, $i, 1) == '.'){
            $p = $i;
        }
    }
    
    if($p != 0){
        if($p+2 == strlen($val)){
            $r = $val.'0';
        }else{
            $r = $val;
        }
    }else{
        $r = $val.".00";
    }
    return $r;
}

function limita_casa( $val ){
    $p = 0;
    for($i = 0; $i < strlen($val); $i++){
        if(substr($val, $i, 1) == '.'){
            $p = $i;
        }
    }
    if($p > 0){
        return substr($val, 0, $p+3);
    }else{
        return $val;
    }
}

function nomeEmpresa(){
    if($_SESSION["sgm_empresa"] != ''){
        echo $_SESSION["sgm_empresa"];
    }else{
        echo "Sistema Gestor de Micronegocio";
    }
}

function ajustaNomeEmpresa(){
    $size = getimagesize("logo/".$_SESSION["sgm_logo"]);
    
    if($size[0] > $size[1]){
        $tam = 0 + 220;
    }else{
        $tam = $size[0] + 120;
    }
    
    //return "style='left: ".$tam."px'";
}

function logoEmpresa(){
    //echo "imagens/sgm.png";
    
    if($_SESSION["sgm_logo"] != ''){
        return config::$url_cliente."logo/".$_SESSION["sgm_logo"];
    }else{
        return "imagens/sgm.png";
    }
    
}

function ajustaLogo(){
    $size = getimagesize(logoEmpresa());
    
    if($size[0] > $size[1]){
        $tam = "width";
        $tx = 200 / $size[0];
        $alt = (100 - ($size[1] * $tx)) / 2;
        $margem = "margin-top: ".$alt."px";
    }else{
        $tam = "height";
        $tx = 100 / $size[0];
        $lar = (200 - ($size[0] * $tx)) / 2;
        $margem = "margin-left: ".$lar."px";
    }
    
    return "style='$tam: 100%; $margem'";
}

function mostraClientesAtrasados(){
    $sql = "SELECT c.nome, p.vencimento, v.data FROM sgm_cliente c, sgm_parcelado p, sgm_venda v
    WHERE p.vencimento < '".date("Y-m-d")."' AND p.id_empresa = '".$_SESSION["sgm_id_empresa"]."' 
    AND p.id_venda = v.id AND c.id = v.id_cliente";
    
    $db = new db(config::$driver);
    $conexao = $db->conecta();
    $result = $db->query($sql, $conexao);
    $db->close($conexao);
    $cont = 0;
    $i = 0;
    while($cli = $db->fetch_array($result)){
        if($cont == 0){
            $cont = 1;
            $class = "zb1";
        }else{
            $cont = 0;
            $class = "zb2";
        }
        echo "
        <tr class='$class'>
            <td>".$cli["nome"]."</td>
            <td>".data_ptbr($cli["vencimento"])."</td>
            <td>".data_ptbr($cli["data"])."</td>
        </tr>";
        $i++;
    }
    if($i == 0){
        echo "<tr><td colspan='3'>Não há clientes atrasados</td></tr>";
    }
}

function mostraProdutosFaltantes(){
    $sql = "SELECT * FROM sgm_produto
            WHERE quantidade < minimo AND id_empresa = '".$_SESSION["sgm_id_empresa"]."'";
    
    $db = new db(config::$driver);
    $conexao = $db->conecta();
    $result = $db->query($sql, $conexao);
    $db->close($conexao);
    $cont = 0;
    $i = 0;
    while($prod = $db->fetch_array($result)){
        if($cont == 0){
            $cont = 1;
            $class = "zb1";
        }else{
            $cont = 0;
            $class = "zb2";
        }
        echo "
        <tr class='$class'>
            <td>".$prod["nome"]."</td>
            <td>".$prod["minimo"]."</td>
            <td>".$prod["quantidade"]."</td>
        </tr>";
        $i++;
    }
    if($i == 0){
        echo "<tr><td colspan='3'>Não há produtos em falta</td></tr>";
    }
}

function urlOrdena($campo){
    $ord  = $_GET["ord"];
    $desc = $_GET["desc"];
    
    echo "&ord=$campo";
    if($ord == $campo){
        if($desc == 1){
            echo "&desc=0";
        }else{
            echo "&desc=1";
        }
    }
}

function setaOrdem($c){
    if($c == $_GET["ord"]){
        if($_GET["desc"] == 1){
            echo " &uArr;";
        }else{
            echo " &dArr;";
        }
    }
}

function mostra_link_boletos(){
    $sql = "SELECT count(*) FROM financeiro WHERE dt_pagamento = '0000-00-00' AND id_empresa = '".$_SESSION["sgm_id_empresa"]."'";
    
    $db = new db(config::$driver_login);
    $conexao = $db->conecta();
    $result = $db->query($sql, $conexao);
    $db->close($conexao);
    $boleto = $db->fetch_array($result);
    if($boleto[0] > 0){
        echo "
        <a href='http://cliente.anguloweb.com.br/?pag=fin&e=".$_SESSION["sgm_id_empresa"]."' title=' Clique qui para consultar as mensalidades do SGM' target='_blank' class='alerta'>Boletos de Mensalidades SGM</a>
        <br><br>";
    }
}

function efetuaMovimentoCaixa($conta){
    $conta->set_dt_pag(date("Y-m-d"));
    $movimento = new movimento();
    $movimento->set_id_empresa($_SESSION["sgm_id_empresa"]);
    $movimento->set_descri($conta->get_descri());
    $movimento->set_dt_mov($conta->get_dt_pag().date(" H:i:s"));
    $movimento->set_entrada($conta->get_entrada());
    $movimento->set_valor($conta->get_valor());
    return $movimento->salvar();
}
